Integrated circuits may include circuitry that may be adapted to perform a variety of functions. Typically, a single die may be sold in many different configurations. As an example, different circuit blocks in a die may be enabled or disabled, depending on pricing and user needs. As such, different dies with different configurations may be sold at different cost points.
Generally, to keep track of different circuit blocks that are enabled in a single device, a unique identifier may be assigned to each enabled circuit block. The unique identifier may be a stock keeping unit (SKU) number. As such, there may be multiple SKU numbers associated with a single device, depending on the number of circuit blocks or features enabled in the device.
As devices may be distributed and shipped to different places, an inventory for all these devices may be held at multiple locations (e.g., at the vendor location, at the distributor, at the customer distribution center, etc.). It may be challenging to keep track of multiple SKU numbers for each device in every inventory.
Often, when a device is shipped from one party to another (e.g., when the device is being sold from a vendor to a customer), the device may need to be able to establish a secure communications channel between the two parties. As an example, a vendor may need to remotely enable certain circuit blocks in the device to provide new services to a customer.
Additionally, programmable devices, such as field programmable gate array (FPGA) devices, are general purpose devices that may be configured to perform different functions depending on different user requirements. For example, such devices may be configurable to include intellectual property (IP) blocks (i.e., licensed logic blocks that may be reused). Oftentimes, specific IP blocks that are required by the user or customer may only be known after a device has been provisioned (or after the device has been sold and shipped to the customer).
Having the ability to establish a secure communications channel with an integrated circuit device enables the device to be remotely provisioned without having to store multiple SKUs for a single device at every inventory location. Specific features in the device (e.g., IP blocks required in a user application, etc.) may also be remotely enabled or disabled at a later time.